module led_proc (
    input        clk,             // 50MHz 时钟输入
    input        rst_n,           // 低电平复位信号
    input  [1:0] countdown_flag,  // 倒计时状态
    output [7:0] led              // LED 输出
);
    reg  [7:0] led_pattern;  // LED 控制模式寄存器
    wire       clk_10;  // 10Hz 分频时钟信号
    reg        led1_state;  // LED1状态

    // 实例化 frequency_divider 模块，将 50MHz 时钟分频到 10Hz
    frequency_divider freq_div_inst (
        .clk    (clk),
        .rst_n  (rst_n),
        .clkbase(50_000_000),
        .clkdiv (10),
        .clkout (clk_10)
    );

    always @(posedge clk or negedge rst_n) begin
        if (!rst_n) begin
            led_pattern <= 8'b0;
            led1_state  <= 1'b0;  // 初始化LED1状态
        end else begin
            case (countdown_flag)
            2'b00:   led_pattern <= 8'b0;  // 清空LED
                2'b01:   led_pattern[0] <= 1'b1;  // 打开LED1
                2'b10: begin
                    if (clk_10) begin
                        led1_state <= ~led1_state;  // 切换LED1状态
                    end
                    led_pattern[0] <= led1_state;  // 更新LED1的状态
                end
                default: led_pattern <= led_pattern;  // 保持当前状态
            endcase
        end
    end

    // 实例化 LED 显示模块，将 led_pattern 映射到实际 LED 输出
    led_display led_display_inst (
        .led_pattern(led_pattern),
        .led        (led)
    );
endmodule
